home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1999 #1 / Amiga Plus 1999 #1.iso / System-Boost / Workbench / BackClock / sources / conf.c next >
C/C++ Source or Header  |  1998-08-10  |  3KB  |  117 lines

  1. /*****************************************************************************
  2.  * 
  3.  * name                    : conf.c
  4.  * description            : load & save prefs file
  5.  * version                : 1.1a
  6.  *
  7.  * created                : 08-03-98
  8.  * last change            : 31-05-98
  9.  *
  10.  *****************************************************************************
  11.  */
  12. #include <dos/dos.h>
  13. #include <exec/memory.h>
  14. #include <intuition/intuition.h>
  15. #include <proto/exec.h>
  16. #include <proto/dos.h>
  17. #include <proto/intuition.h>
  18. #include <string.h>
  19. #include "utils.h"
  20. #include "conf.h"
  21. #include "obp.h"
  22.  
  23.  
  24.  
  25. void SaveEnv(idWin * prj, BOOL envarc) {
  26.   UBYTE * txtform = NULL ;
  27.   if (!SaveConf(prj, CF_NAMEENV)) {
  28.     /* error during saving
  29.      */
  30.     if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
  31.       /* open an info request
  32.        */
  33.       strcat(txtform, ERR_ENV) ;
  34.       Fault(prj->lastError, ERR_ENV, txtform, 100) ;  
  35.       ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
  36.       FreeVec(txtform) ;
  37.     }
  38.   }
  39.   if (envarc) {
  40.     if (!SaveConf(prj, CF_NAMEENVARC)) {
  41.       /* error during saving
  42.        */
  43.       if (txtform = AllocVec(100, MEMF_PUBLIC|MEMF_CLEAR)) {
  44.         /* open an info request
  45.          */
  46.         strcat(txtform, ERR_ENVARC) ;
  47.         Fault(prj->lastError, ERR_ENVARC, txtform, 100) ;  
  48.         ez_req("BackClock request", txtform, "Continue", &(prj->lastError)) ;
  49.         FreeVec(txtform) ;
  50.       }
  51.     }
  52.   }
  53. }
  54.  
  55.  
  56. BOOL SaveConf(idWin * prj, UBYTE * fl_name) {
  57.   struct ConfFile cf_save ;
  58.   ULONG file ;
  59.   BOOL ret=FALSE ;
  60.   int i ;
  61.   
  62.   CopyMem("BACK", cf_save.id, 4) ;
  63.   cf_save.posX = prj->backWin.posX ;
  64.   cf_save.posY = prj->backWin.posY ;
  65.   cf_save.lenX = prj->backWin.width ;
  66.   cf_save.lenY = prj->backWin.height ;
  67.   for(i = 0; i<NUM_COLORS; i++)
  68.     CopyMem(&(prj->backWin.cmap[i]), &(cf_save.cmap[i]), sizeof(struct RGB)) ;
  69.   cf_save.fill = prj->backWin.fill ;
  70.   if (cf_save.fill !=0) cf_save.fill = -1 ;
  71.   if (file = Open(fl_name, MODE_NEWFILE)) {
  72.     Write(file, &cf_save, sizeof(struct ConfFile)) ;
  73.     Close(file) ;
  74.     prj->lastError = OK ;
  75.     ret=TRUE ;
  76.   }else prj->lastError = IoErr() ;
  77.   return ret ;
  78. }
  79.  
  80.  
  81. BOOL LoadConf(idWin * prj) {
  82.   /* Reload configuration file
  83.    */
  84.   struct ConfFile cf_load ;
  85.   ULONG file ;
  86.   BOOL ret = FALSE ;
  87.   int i ;
  88.  
  89.   if (file = Open("ENV:backclock.prefs", MODE_OLDFILE)) {
  90.     Read(file, &cf_load, sizeof(struct ConfFile)) ;
  91.     prj->backWin.posX = cf_load.posX ;
  92.     prj->backWin.posY = cf_load.posY ;
  93.     prj->backWin.width = cf_load.lenX ;
  94.     prj->backWin.height = cf_load.lenY ;
  95.     for(i = 0; i < NUM_COLORS; i++)
  96.       CopyMem(&(cf_load.cmap[i]), &(prj->backWin.cmap[i]), sizeof(struct RGB)) ;
  97.     prj->backWin.fill = (BOOL)cf_load.fill ;
  98.     initColors(prj) ;
  99.     ret = TRUE ;
  100.     prj->lastError = OK ;
  101.     Close(file) ;
  102.   }else {
  103.     prj->lastError = IoErr() ;
  104.     prj->backWin.posX =     0 ;
  105.     prj->backWin.posY =     0 ;
  106.     prj->backWin.width =  100 ;
  107.     prj->backWin.height = 100 ;
  108.     prj->backWin.cmap[COL_SEC].reg = (UBYTE)getPen(prj, 0, 100, 200) ;
  109.     prj->backWin.cmap[COL_MIN].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
  110.     prj->backWin.cmap[COL_HEU].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
  111.     prj->backWin.cmap[COL_TIC].reg = (UBYTE)getPen(prj, 0, 0, 0) ;
  112.     prj->backWin.cmap[COL_BAC].reg = (UBYTE)getPen(prj, 255, 0, 0) ;
  113.     prj->backWin.fill = -1 ;
  114.     
  115.   }
  116.   return(ret) ;
  117. }